Event Compression

<#5176#> CLUE allows the programmer defining a contact class to ignore certain redundant input events in order to improve contact performance. ``Compression'' of redundant events is controlled by the class slots <#2297#>compress-exposures<#2297#> and <#2298#>compress-motion<#2298#>, which are shared by all instances of a contact class.

Contacts which respond to changes in the pointer position may find it difficult to keep up with a rapidly-moving mouse and, in fact, may not need to recognize every individual motion event. Initializing the <#2299#>compress-motion<#2299#> slot to <#2300#>:on<#2300#> will cause all but the last in a sequence of consecutive <#2301#>:motion-notify<#2301#> events to be ignored, with only the most recent event being dispatched to the contact.

Simple contacts may find it more efficient always to display the entire contact image, ignoring <#2302#>x<#2302#>, <#2303#>y<#2303#>, <#2304#>width<#2304#>, and <#2305#>height<#2305#> arguments to the <#2306#>display<#2306#> method. Such contacts will not be interested in partial exposure events. Initializing the <#2308#>compress-exposures<#2308#> slot to <#2309#>:on<#2309#> will result in <#2310#>:exposure<#2310#> events being dispatched to the contact only when the expose count is zero (i.e. the last of a series of partial exposure events).

=0